package tp.tecnicasdisenio.model.factory;

import tp.tecnicasdisenio.dao.impl.jdbc.ConsultaDao;
import tp.tecnicasdisenio.dao.impl.jdbc.MateriaDao;
import tp.tecnicasdisenio.model.ReglaInterface;
import tp.tecnicasdisenio.model.accion.AccionResolverConsulta;
import tp.tecnicasdisenio.model.parser.ParserTituloResolverConsultaTemaPrivada;
import tp.tecnicasdisenio.model.regla.ReglaConsultaTemaPrivadaResuelta;

public class ReglaConsultaTemaPrivadaResueltaFactory implements ReglaFactoryInterface {
public static ReglaConsultaTemaPrivadaResueltaFactory instance;
	
	private ReglaConsultaTemaPrivadaResueltaFactory(){
	}
	
	public static synchronized ReglaConsultaTemaPrivadaResueltaFactory getInstance(){
		if(instance == null){
			instance= new ReglaConsultaTemaPrivadaResueltaFactory();
		}
		return instance;
	}
	
	@Override
	public ReglaInterface crear() {
		AccionResolverConsulta accionResolverConsulta = new AccionResolverConsulta();
		accionResolverConsulta.setMateriaDao(MateriaDao.getInstance());
		accionResolverConsulta.setConsultaDao(ConsultaDao.getInstance());
		accionResolverConsulta.setParser(new ParserTituloResolverConsultaTemaPrivada());
		
		ReglaConsultaTemaPrivadaResuelta reglaConsultaTemaResuelta = new ReglaConsultaTemaPrivadaResuelta();
		reglaConsultaTemaResuelta.nuevaAccion(accionResolverConsulta);
		reglaConsultaTemaResuelta.setParserTitulo(new ParserTituloResolverConsultaTemaPrivada());
		
		return reglaConsultaTemaResuelta;
	}
}